1. Technical Field
The present invention relates to a data processing system. In particular, the present invention relates to improving reliability, availability, and serviceability (RAS) of a data processing system. Still more particular, the present invention relates to restricting peer-to-peer (P2P) operations in a data processing system to improve RAS using Requester ID decoding. Still more particular, the present invention relates to restricting peer-to-peer (P2P) operations in a data processing system to improve RAS using Requester ID decoding, wherein the data processing system is logically partitioned (LPARed).
2. Description of Related Art
Increasingly large symmetric multi-processor data processing systems, such as IBM eServer P690, available from International Business Machines Corporation, DHP9000 Superdome Enterprise Server, available from Hewlett-Packard Company, and the Sunfire 15K server, available from Sun Microsystems, Inc. are not being used as single large data processing systems. Instead, these types of data processing systems are being partitioned and used as smaller systems. These systems are also referred to as logically partitioned (LPARed) data processing systems. A logically partitioned functionality within a data processing system allows multiple copies of a single operating system or multiple heterogeneous operating systems to be simultaneously run on a single data processing system platform. A partition, within which an operating system image runs, is assigned a non-overlapping subset of the platforms resources. These platform allocable resources include one or more architecturally distinct processors with their interrupt management area, regions of system memory, and input/output (I/O) device bus slots. The partition's resources are represented by the platform's firmware to the operating system image.
Each distinct operating system or image of an operating system running within a platform is protected from each other such that software errors on one logical partition cannot affect the correct operations of any of the other partitions. This protection is provided by allocating a disjoint set of platform resources to be directly managed by each operating system image and by providing mechanisms for ensuring that the various images cannot control any resources that have not been allocated to that image. Furthermore, software errors in the control of an operating system's allocated resources are prevented from affecting the resources of any other image. Thus, each image of the operating system or each different operating system directly controls a distinct set of allocable resources within the platform.
With respect to hardware resources in a logically partitioned data processing system, these resources are disjoint among various partitions. These resources may include, for example, input/output (I/O) devices, memory DIMMs, non-volatile random access memory (NVRAM), and hard disk drives. Each partition within an LPAR data processing system may be booted and shut down over and over without having to power-cycle the entire data processing system.
PCI-X and PCI Express are types of data processing system that are designed with a “flat” address space in mind. That is, if software can address an I/O device at some particular address, then other I/O devices can also access that same I/O device at the same address. The access from one I/O device to another is the basis of P2P operations.
While P2P bus topology provides a higher quality of service for some applications, P2P also has its drawbacks. For example, one I/O device may directly access another I/O device's memory without authorization. In a logically partitioned data processing system, this unauthorized or malicious access may translate to an I/O device of one partition harming an I/O device of another partition. This drawback affects the reliability of the system.
Currently, there is no existing mechanism that prevents such malicious or accidental P2P accesses, while allowing them when desired. An attempt has been made to prevent such attacks by using a bit in a bridge to turn off the P2P access entirely. However, this technique prevents P2P access between selected I/O devices when desired. For example, it may be desirable for an I/O device to receive P2P operations from one particular I/O device, but not from others. In addition, this technique limits P2P operations when more than one level of switch is used.
Therefore, it would be advantageous to have a method and an apparatus for restricting peer-to-peer operations in a data processing system, and particularly in a logically partitioned data processing system, that allows P2P operations when desired while preventing such operations when not desired. With such method and apparatus, P2P operations may be controlled such that reliability, availability, and serviceability of data processing systems are improved.